//
//  NSDate+Extension.swift
//  KKWeibo
//
//  Created by kassia on 16/7/19.
//  Copyright © 2016年 kassia. All rights reserved.
//

import Foundation

extension NSDate {

    // 根据时间字符串创建时间对象
    class func sinaDate(creatStr: String) -> NSDate {
        
        // 转成时间的对象
        let dt = NSDateFormatter()
        
        // 指定格式
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        // 指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        let creatAtDate = dt.dateFromString(creatStr)!
        
        return creatAtDate
    }

    /**
    *  1. 把时间对象转成需要字符串
    如果是今年
    判断是否是今天
    判断是否是在1分钟之前
    - 刚刚
    判断是否是在1小时之前
    - xxx分钟前
    其它
    - xx小时前
    判断是否是昨天
    - 昨天 10:10
    其他
    - 07-10 10:10
    如果不是今年
    - 2015-10-29 10:10

    */
    
    
    //  根据时间对象转成字符串
    var sinaDateString: String {
        
        // 判断年份是否是今年
        let dt = NSDateFormatter()
        
        // 指定当地时间
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        if isThisYear(self) {
        
            // 是今年
            
            let calendar = NSCalendar.currentCalendar()
            
            if calendar.isDateInToday(self) {
            
                // 是今天
                let timer = abs(self.timeIntervalSinceNow)
                
                if timer < 60 {
                
                    return "刚刚"
                
                } else if timer < 60 * 60 {
                
                   let time = timer / 60
                    
                    return "\(Int(time))分钟前"
                    
                } else {
                
                    let time = timer / 3600
                    
                    return "\(Int(time))小时前"
                
                }
                
            } else if calendar.isDateInYesterday(self){
            
               // 昨天
            
                dt.dateFormat = "昨天 HH:mm"
            } else {
            
               // 其他
                dt.dateFormat = "MM-dd HH:mm"
                
            }
        
            
        } else {
        
            // 不是今年
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        
        
        }
        
    
        return dt.stringFromDate(self)
    }
     
     
    // 发微博时间与当前年份相比,看是否是同一年
    private func isThisYear(creatStr: NSDate)-> Bool {
    
        let dt = NSDateFormatter()
        
        dt.dateFormat = "yyyy"
        
        // 指定本地化时间
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        // 把时间对象转成字符串
        let creatDate = dt.stringFromDate(creatStr)
        
        
        let currentDate = dt.stringFromDate(NSDate())
        
        return creatDate == currentDate
    
    }

}